// pages/order_detail/order_detail.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        time: '12:30',
        orderId: '',
        
        // 订单数据
        order: {
            code: 'OD2403220001',
            createTime: '2024-03-22 16:38:25',
            statusText: '待付款',
            statusClass: 'unpaid',
            weddingDate: '2024-10-15',
            
            // 客户信息
            client: {
                avatar: '周',
                name: '周小姐',
                phone: '138****1234',
                email: 'zhoulili@example.com'
            },
            
            // 地址信息
            address: {
                name: '周小姐',
                phone: '138****1234',
                detail: '上海市浦东新区张江高科技园区'
            },
            
            // 订单商品
            items: [
                {
                    id: 1,
                    name: '法式蕾丝鱼尾婚纱',
                    color: '象牙白',
                    size: '定制',
                    price: '18,800',
                    image: 'https://images.unsplash.com/photo-1594612658290-386d64b8dd1c?ixlib=rb-4.0.3&auto=format&fit=crop&w=300&q=80'
                }
            ],
            
            // 服务信息
            service: {
                measureTime: '2024-03-25 14:00',
                tryTime: '2024-03-28 15:30',
                pickupTime: '2024-10-10 10:00',
                staff: '李顾问',
                remark: '客户要求胸部和腰部做贴合调整，更加突出身材曲线'
            },
            
            // 价格信息
            pricing: {
                items: [
                    { label: '礼服费用', value: '¥18,800' },
                    { label: '定制服务费', value: '¥1,200' },
                    { label: '优惠券', value: '-¥1,000' },
                    { label: '新人折扣', value: '-¥500' }
                ],
                total: '18,500'
            },
            
            // 订单进度
            timeline: [
                { time: '2024-03-22 16:38:25', content: '订单创建' },
                { time: '2024-03-22 16:45:12', content: '预约服务' },
                { time: '待进行', content: '支付订单' },
                { time: '待进行', content: '礼服量体' },
                { time: '待进行', content: '礼服试装' },
                { time: '待进行', content: '礼服取件' }
            ]
        }
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        // 更新当前时间
        this.updateTime();
        this.getTimerID = setInterval(this.updateTime, 60000);
        
        // 获取订单ID
        if (options.id) {
            this.setData({
                orderId: options.id
            });
            
            // 应该根据ID获取订单详情
            // this.fetchOrderDetail(options.id);
        }
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {
        clearInterval(this.getTimerID);
    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    updateTime: function() {
        const date = new Date();
        const hours = date.getHours();
        const minutes = date.getMinutes();
        this.setData({
            time: `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`
        });
    },

    // 获取订单详情
    fetchOrderDetail: function(orderId) {
        // 这里应该是API请求，目前使用模拟数据
        wx.showLoading({
            title: '加载中...',
        });
        
        // 模拟API请求延迟
        setTimeout(() => {
            wx.hideLoading();
            // 真实项目中这里会有实际的API调用
        }, 500);
    },

    // 返回上一页
    navigateBack: function() {
        wx.navigateBack();
    },

    // 编辑订单
    editOrder: function() {
        wx.showToast({
            title: '功能开发中',
            icon: 'none'
        });
    },

    // 联系客户
    contactClient: function() {
        const { client } = this.data.order;
        wx.showActionSheet({
            itemList: ['拨打电话', '发送短信', '发送邮件'],
            success: (res) => {
                switch (res.tapIndex) {
                    case 0:
                        wx.makePhoneCall({
                            phoneNumber: client.phone.replace(/\*/g, '0')
                        });
                        break;
                    case 1:
                        // 短信功能需要客户端支持
                        wx.showToast({
                            title: '功能开发中',
                            icon: 'none'
                        });
                        break;
                    case 2:
                        // 邮件功能需要客户端支持
                        wx.showToast({
                            title: '功能开发中',
                            icon: 'none'
                        });
                        break;
                }
            }
        });
    },

    // 打印订单
    printOrder: function() {
        wx.showToast({
            title: '功能开发中',
            icon: 'none'
        });
    },

    // 取消订单
    cancelOrder: function() {
        wx.showModal({
            title: '取消订单',
            content: '确定要取消该订单吗？此操作不可撤销。',
            confirmColor: '#B76E79',
            success: (res) => {
                if (res.confirm) {
                    // 真实项目中这里会有实际的API调用
                    wx.showToast({
                        title: '订单已取消',
                        icon: 'success'
                    });
                    
                    // 2秒后返回上一页
                    setTimeout(() => {
                        wx.navigateBack();
                    }, 2000);
                }
            }
        });
    },

    // 收款
    collectPayment: function() {
        wx.showActionSheet({
            itemList: ['微信支付', '支付宝', '现金', '银行卡'],
            success: (res) => {
                // 真实项目中这里会有实际的支付流程
                wx.showLoading({
                    title: '处理中...',
                });
                
                // 模拟支付处理延迟
                setTimeout(() => {
                    wx.hideLoading();
                    wx.showToast({
                        title: '支付成功',
                        icon: 'success'
                    });
                    
                    // 更新订单状态
                    const orderData = this.data.order;
                    orderData.statusText = '已付款';
                    orderData.statusClass = 'paid';
                    this.setData({
                        order: orderData
                    });
                    
                    // 更新时间轴
                    const timeline = this.data.order.timeline;
                    timeline[2].time = new Date().toLocaleString('zh-CN', {
                        year: 'numeric',
                        month: '2-digit',
                        day: '2-digit',
                        hour: '2-digit',
                        minute: '2-digit',
                        second: '2-digit',
                        hour12: false
                    }).replace(/\//g, '-');
                    
                    this.setData({
                        'order.timeline': timeline
                    });
                }, 1500);
            }
        });
    }
})